#ifndef GY_INTARRAY_H
#define GY_INTARRAY_H

#include "GY_BasicsDataObjects.h"

class GY_CONTROLLIBRARY_EXPORT GY_IntArray : public GY_BasicsDataObjects
{
    Q_OBJECT
public:
    explicit Q_INVOKABLE GY_IntArray(const QString &guid,QGraphicsItem *parent = nullptr);
    ~GY_IntArray(){}

private:
    /**
     * @brief initializationPropertyInfo 初始化属性信息
     */
    void initializationPropertyInfo();
    /**
     * @brief updateAttribute 更新新增属性
     * @param name 属性名称
     * @param value 属性值
     * @return 返回更新是否成功
     */
    bool updateAttribute(const QString &name, const QVariant &value);
    /**
     * @brief updateElementCapacity 更新数组最大保存量
     * @param name 属性名称
     * @param value 属性值
     * @return 返回更新是否成功
     */
    bool updateElementCapacity(const QString &name, const QVariant &value);
    /**
     * @brief updateElementSize 更新数组当前容量
     * @param name 属性名称
     * @param value 属性值
     * @return 返回更新是否成功
     */
    bool updateElementSize(const QString &name, const QVariant &value);
    /**
     * @brief addNewAttribute 增加自定义属性
     * @param name 属性名称
     * @param value 属性值
     * @return 是否增加成功
     */
    bool addAttribute(const QString &name);
    /**
     * @brief addNewAttribute 删除自定义属性
     * @param name 属性名称
     * @return 是否删除成功
     */
    bool deleteAttribute(const QString &name);
    /**
     * @brief updateAttributeMapNum 更新存放属性map
     */
    void updateAttributeMapNum();
};

#endif // GY_INTARRAY_H
